﻿#define _CRT_SECURE_NO_WARNINGS 1

#include <stdio.h>
//int main()
//{
//	int a = 10;
//	int b = 15;
//
//	printf("%d\n", a + b);
//	printf("%d\n", a - b);
//	printf("%d\n", a * b);
//	printf("%d\n", a / b);
//	printf("%d\n", a % b);
//
//	return 0;
//}

//int main()
//{
//	int num = 10;
//	printf("%d\n", 3 + 5);
//	printf("%d\n", 5 * 5);
//	printf("%d\n", num * 5);
//
//	return 0;
//}

//int main()
//{
//	printf("%d\n", 8 / 2);//  4
//	printf("%d\n", 8 / 3);//  2
//	printf("%d\n", 6 / 4); // 1 
//	printf("%f\n", 6 / 4.0);//1.500000
//	printf("%f\n", 6.0 / 4);//1.500000
//	printf("%f\n", 6.0 / 4.0);//1.500000
//	/*
//		% f 是用来打印小数的，这种打印的方式，小数点后默认是6位小数的
//		对于除法来来说，除号的两端如果都是整数，计算的是整数的除法,不会得到小数的。得到的是整除后的商。
//		除号的两端有浮点数。计算的是小数除法。
//	*/
//
//
//	return 0;
//}

//int main()
//{
//	int score = 5;
//	printf("%d\n", (score / 20) * 100);//	0
//	printf("%d\n", (score / 20.0) * 100);// 0  得到的结果是25.000000，是double类型，用%d输出出现问题
//
//	return 0;
//}

//int main()
//{
//	int score = 5;
//	printf("%f\n", (score / 20.0) * 100);// 25.000000
//
//	return 0;
//}

//int main()
//{
//	int score = 5;
//	score = (score / 20) * 100;
//	printf("%d\n", score);// 0
//
//	return 0;
//}

//int main()
//{
//	int score = 5;
//
//	score = (score / 20.0) * 100;
//	printf("%d\n", score);// 25  因为score是整数类型
//
//	return 0;
//}

//int main()
//{
//	printf("%d\n", 10 % 3);// 3......1   --> 1
//
//	return 0;
//}

//int main()
//{
//	//int a = 0;//初始化
//	//a = 10;//赋值
//
//	int a = 3;
//	int b = 5;
//	int c = 0;
//	//c = b = a + 3;//连续赋值，从右向左依次赋值的。
//	//c = (b = a + 3);
//
//	b = a + 3;
//	c = b;
//
//	printf("c = %d b = %d\n", c, b);
//
//	return 0;
//}

//int main()
//{
//	printf("%f\n", 3.14);
//
//	return 0;
//}
///*
//	小数默认是double类型的，如3.14-->double类型
//							  3.14f（F）-->float类型
//	如果要使用float类型，就要在小数后加上f或F。
//
//*/

//int main()
//{
//	int a = 3;
//	//a = a + 5;
//	//a += 5;//复合赋值 + =
//	//a = a - 5;
//	//a -= 5;
//	//*= /= %=
//	printf("%d\n", a);
//
//	return 0;
//}


//int main()
//{
//	int a = 5;
//	//a = a + 1;
//	//a += 1;
//	//++  自增1的操作符
//	//a++;//后置++
//	//++a;//前置++
//	printf("%d\n", a);
//	return 0;
//}

//int main()
//{
//	int a = 10;
//	//printf("%d\n", a--);// 10
//	//printf("%d\n", a);//   9
//
//	printf("%d\n", ++a);//  11
//	printf("%d\n", a);//    11
//
//	return 0;
//}

//int main()
//{
//	int a = 1;
//	printf("%d\n", (++a) + (++a) + (++a));  //错误的代码--> 不建议这样书写代码
//	return 0;
//}

//int main()
//{
//	int a = 10;
//	printf("%d\n", +a);//10
//	printf("%d\n", -a);//-10
//
//	printf("%+d\n", a);//+10   
//	printf("%-d\n", a);//10    
//
//	return 0;
//}

//int main()
//{
//	int a = -10;
//	
//	
//	printf("%+d\n", -a);//+10
//	printf("%+d\n", a);// -10
//	printf("%-d\n", a);// -10
//	/*
//		%+d能使正数前有一个+号
//		%-d则没有什么效果，原来是什么就是什么  这个负号是用来左对齐和右对齐的
//	*/
//	return 0;
//}

//int main()
//{
//	printf("%d\n", 11 % -5); //1
//	printf("%d\n", -11 % -5);//-1
//	printf("%d\n", -11 % 5);// -1
//	/*
//		负数求模的规则是，结果的正负号由第⼀个运算数的正负号决定。
//	*/
//	return 0;
//}

//int main()
//{
//	int a = 3.14;
//	printf("%d\n", a);//3
//	printf("%d\n", a);//0.000000
//	//a的是int类型, 3.14是double类型，两边的类型不⼀致，编译器会报警告 
//
//	//int a = (int)3.14;//意思是将3.14强制类型转换为int类型，这种强制类型转换只取整数部分
//	return 0;
//}


/*
	占位符
*/
//int main()
//{
//	unsigned int a = 55;
//	printf("%u\n", a);
//	return 0;
//}
/*
	float		---->  %f
	double		---->  %f %lf 
	long double ---->  %Lf

	int			---->  %d
	signed		---->  %d
	unsigned	---->  %u

	short int	---->  %hd
	unsigned short int ---->  %hu
*/

//%s -- 字符串
//int main()
//{
//	printf("zhangsan will come tonight\n");
//	printf("%s will come tonight\n", "zhangsan");
//	printf("%s will come tonight\n", "lisi");
//	printf("%s will come tonight\n", "王五");
//
//	return 0;
//}


//int main()
//{
//	//printf("%d\n", 6 / 4);
//	short int n = 2;
//	printf("%hd\n", n);//2
//	unsigned short int m = 100;
//	printf("%hu\n", m);//100
//
//	return 0;
//}

//int main()
//{
//	int a = 15;
//	printf("%%%d\n",a);//%15  %%表示一个%，%d表示占位符
//	printf("%x\n", a);//f     表示用十六进制输出 x小写 X大写
//	printf("%X\n", a);//F
//	return 0;
//}


//int main()
//{
//	printf("%dxxxx\n", 123);//原样输出
//	printf("%05dxxxx\n", 123);//最小五位，右对齐，左边用0补充
//	printf("%-5dxxxx\n", 123);//最小五位，左对齐
//	printf("%5dxxxx\n", 123456);//原样输出
//
//	return 0;
//}


//int main()
//{
//	printf("%f\n", 123.456);
//	printf("%12f\n", 123.456);
//	printf("%.2f\n", 123.456);
//	printf("%12.2f\n", 123.456);
//	printf("%-12.2f\n", 123.456);
//	printf("%-012.2f\n", 123.456);
//
//	return 0;
//}

//int main()
//{
//	printf("%+d\n", -12);//-12
//	printf("%+d\n", 12);// +12
//    %+d 可以确保输出的数值，总是带有正负号
//	return 0;
//}


//int main()
//{
//	printf("%f\n", 123.456);
//	printf("%.2f\n", 123.456);//小数点后保留2位，会四舍五入
//	printf("%.3f\n", 123.456);//小数点后保留3位，会四舍五入
//	printf("%.1f\n", 123.456);//小数点后保留1位，会四舍五入
//
//	return 0;
//}


//int main()
//{
//	printf("%f\n", 0.5);
//	printf("%5.2f\n", 0.5);
//	printf("%*.*f\n", 6, 2, 0.5);
//
//	return 0;
//}
//


//int main()
//{
//	printf("%s\n", "abcdef");
//	printf("%.3s\n", "abcdef");
//	printf("%10s\n", "abcdef");
//
//	return 0;
//}

//int main()
//{
//	//int a = 0;
//	//a = 10;
//	//给a输入一个值
//	//scanf();//是可以给变量中输入值
//
//	int score = 0;
//	printf("请输入成绩:");
//	scanf("%d", &score);//& - 取地址操作符
//	printf("成绩是：%d\n", score);
//
//	return 0;
//}


//int main()
//{
//	char arr[5];//数组 - 一组数据
//	scanf("%s", arr);//数组名其实是地址
//	printf("%s\n", arr);
//
//	return 0;
//}
/*
	scnaf函数不安全，会导致程序崩溃
*/

//int main()
//{
//	int i = 0;
//	scanf("%d", &i);
//
//	printf("%d\n", i);
//	return 0;
//}

//int main()
//{
//	int i, j;
//	float x, y;
//
//	scanf("%d%d%f%f", &i, &j, &x, &y);
//	printf("i=%d\n", i);
//	printf("j=%d\n", j);
//	printf("x=%f\n", x);
//	printf("y=%f\n", y);
//
//	return 0;
//}

//int main()
//{
//	int x;
//	float y;
//
//	// 用户输入 "    -13.45e12# 0"
//	scanf("%d", &x);
//	printf("%d\n", x);//-13
//	scanf("%f", &y);
//	printf("%f\n", y);//不是450000000000  是--->449999994880.000000
//	/*
//		小数有可能在内存中不能精确保存
//	*/
//	return 0;
//}


// 输出 hello
//#include <stdio.h>
//int main()
//{
//	printf("%.5s\n", "hello world");//hello
//	return 0;
//}

/*
	scanf()处理用户输⼊的原理是，⽤⼾的输⼊先放⼊缓存，等到按下回⻋键后，按照占位符对缓存
	进⾏解读。
	解读⽤⼾输⼊时，会从上⼀次解读遗留的第⼀个字符开始，直到读完缓存，或者遇到第⼀个不符合条
	件的字符为⽌。
*/

#include <stdio.h>
int main()
{
	int x;
	float y;

	// ⽤⼾输⼊ " -13.45e12# 0" 
	scanf("%d%f", &x, &y);
	printf("%d\n", x);
	printf("%f\n", y);

	return 0;
}
